package com.heima.wemedia.controller.v1;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.wemedia.dtos.*;
import com.heima.model.wemedia.pojos.WmNews;
import com.heima.wemedia.service.WmNewsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.security.PublicKey;

@RestController
@RequestMapping("/api/v1/news")
public class WmNewsController {

    @Autowired
    private WmNewsService wmNewsService;

    /**
     * TODO:修改文章
     *      【1】根据id查询文章
     *      【2】调用submitNews（和文章发布一样）
     */
    @GetMapping("/one/{id}")
    public ResponseResult findById(@PathVariable Long id) {
        WmNews wmNews = wmNewsService.getById(id);
        return ResponseResult.okResult(wmNews);
    }

    /**
     * TODO：查询自媒体文章
     *
     * @param dto
     * @return
     */
    @PostMapping("/list")
    public ResponseResult findAll(@RequestBody WmNewsPageReqDto dto) {
        return wmNewsService.findAll(dto);
    }

    /**
     * TODO:文章发布
     * 获取前端传参，把信息存入写入数据库->难点：前端传输内容的数据格式：JSON字符串，需要转换数据提取其中的图片
     *
     * @param dto
     * @return
     * @throws Exception
     */
    @PostMapping("/submit")
    public ResponseResult submitNews(@RequestBody WmNewsDto dto) throws Exception {
        return wmNewsService.submitNews(dto);
    }

    /**
     * 自媒体文章人工审核-查询文章列表
     */
    @PostMapping("/list_vo")
    public ResponseResult searchVo(@RequestBody NewsDto dto) {
        return  wmNewsService.findList(dto);
    }

    /**
     * 自媒体文章人工审核-查询文章详情
     */
    @GetMapping("/one_vo/{id}")
    public ResponseResult searchInfo(@PathVariable Long id) {
        return  wmNewsService.searchInfo(id);
    }

    /**
     * 自媒体文章人工审核-审核失败
     */
    @PostMapping("/auth_fail")
    public ResponseResult authFail(@RequestBody AuthenDto dto) {
        return  wmNewsService.authFail(dto);
    }

    /**
     * 自媒体文章人工审核-审核通过
     */
    @PostMapping("/auth_pass")
    public ResponseResult authPass(@RequestBody AuthenDto dto) {
        return  wmNewsService.authPass(dto);
    }
}